"""
项目的初始化配置信息:
项目的初始化配置信息:

1.数据库配置

2.redis配置

3.csrf配置

4.session配置,为了后续登陆保持,做铺垫

5.日志信息配置

6.数据库迁移配置

"""""
import random
from datetime import datetime, timedelta

from info import create_app,db,models  #models 导入目的，只是为了让当前项目知道有该文件
from flask_script import Manager
from flask_migrate import MigrateCommand,Migrate

#调用业务模块获取app
from info.models import User

app = create_app("develop")

# 创建Manager对象管理app
manager = Manager(app)

# 使用Migrate,关联app db
Migrate(app,db)

# 给Manager添加一个操作命令
manager.add_command("db",MigrateCommand)

#　创建管理员方法

# @manager.option方法　　　可以通过命令行调用
# 参数１:表示传递的名称　　参数２：传递名称的解释　　　参数３:传递到形式参数的名称
@manager.option('-u', '--username', dest='username')
@manager.option('-p', '--password', dest='password')
def create_superuser(username,password):

    #创建管理员用户
    admin = User()

    #设置管理员属性
    admin.nick_name = username
    admin.password = password
    admin.mobile = username
    admin.is_admin = True

    #添加到数据库
    try:
        db.session.add(admin)
        db.session.commit()
    except Exception as e:
        return "注册失败"
    return "注册成功"

# 添加测试用户
@manager.option('-t', '--test', dest='test')
def add_test_user(test):

    # 用户容器
    user_list  = []

    for i in range(1,1000):
        #创建测试用户
        user = User()
        user.nick_name = "老王%d"%i
        user.mobile = "138%08d"%i
        user.password_hash = "pbkdf2:sha256:50000$p4IJtmEY$f6288da824b3d7183e0f06bac2c59abd9e7735483fbd0e7ca8c9ba174e864445"

        #设置随机，设置最后登录时间，设置３１天内随机登录时间
        user.last_login = datetime.now()  - timedelta(seconds=random.randint(0,3600*24*30))

        user_list.append(user)

    #添加到数据库
    try:
        db.session.add_all(user_list)
        db.session.commit()
    except Exception as e:
        return "添加失败"
    return "添加成功"




if __name__ == '__main__':
    manager.run()